import os

import pandas as pd

class ExcelManageUtils:

    @staticmethod
    def get_excel_data(file):
        # 设置显示的最大列数
        pd.set_option('display.max_columns', None)
        # 设置显示的最大行数
        pd.set_option('display.max_rows', None)
        # 设置显示的最大列宽
        pd.set_option('display.max_colwidth', None)
        df = pd.read_excel(file, header=None, engine='openpyxl')
        # 填充NaN内容为空字符串
        df = df.fillna('')
        # 去除所有单元格中的换行符
        for col in df.select_dtypes(include='object').columns:
            df[col] = df[col].map(lambda x: x.replace('\n', ' ') if isinstance(x, str) else x)
        # 工作表数据
        # 获取标题，判断是否有有效内容
        if df.empty or df.shape[0] == 0:
            sheet_data = None
        else:
            header = []
            for col in range(df.shape[1]):
                header.append(str(df.iloc[1, col]).strip())
            data = []
            for row in range(2, df.shape[0]):
                content = {}
                for i in range(len(header)):
                    content[header[i]] = str(df.iloc[row, i]).strip()
                data.append(content)
            sheet_data = data
        return sheet_data


